## Loading tidyverse: ggplot2
## Loading tidyverse: tibble
## Loading tidyverse: tidyr
## Loading tidyverse: readr
## Loading tidyverse: purrr
## Loading tidyverse: dplyr
## Conflicts with tidy packages ----------------------------------------------
## filter(): dplyr, stats
## lag():    dplyr, stats
## Loading 'meta' package (version 4.8-2).
## Type 'help(meta)' for a brief overview.

1) Search terms

Searches were done using Web of Science.

searchTerms <- read_csv("search_terms.csv")
## Parsed with column specification:
## cols(
##   search = col_integer(),
##   terms = col_character(),
##   hits = col_integer()
## )
datatable(searchTerms)

2) Prisma graphic

prisma(found = 118,
       found_other = 11,
       no_dupes = 113, 
       screened = 113, 
       screen_exclusions = 87, 
       full_text = 26,
       full_text_exclusions = 14, 
       qualitative = 12, 
       quantitative = 0,
       width = 800, height = 800)
## Loading required namespace: DiagrammeR

3) Reasons for paper eliminations

paperReasons <- read_csv("paper_reasons.csv")
## Parsed with column specification:
## cols(
##   Reason = col_character(),
##   Papers = col_integer()
## )
datatable(paperReasons)

Histogram of the reasons for excluding papers:

ggplot(paperReasons, aes(Reason, Papers)) + geom_bar(stat = "identity") + coord_flip()

4) Import the meta analysis table

data <- read_csv("meta-analysis_data.csv")
## Parsed with column specification:
## cols(
##   Paper_ID = col_integer(),
##   Reviewer = col_character(),
##   StudyType = col_character(),
##   Age_class = col_character(),
##   Start_time = col_integer(),
##   End_time = col_integer(),
##   Season = col_character(),
##   Driver = col_character(),
##   Response_Units = col_character(),
##   EffectSize_d = col_double()
## )
datatable(data)

A range of drivers were investigated:

data.simple <- data %>% group_by(Driver) %>% count()
ggplot(na.omit(data.simple), aes(Driver, n)) + geom_bar(stat = "identity") + coord_flip()

Three main study types were represented:

data.simple <- data %>% group_by(StudyType) %>% count()
ggplot(na.omit(data.simple), aes(StudyType, n)) + geom_bar(stat = "identity") + coord_flip()

Age classes and definitions varied:

data$Age_class[grep('juvenile',data$Age_class)] <- 'Juvenile'
data.simple <- data %>% group_by(Age_class) %>% count()

ggplot(na.omit(data.simple), aes(Age_class, n)) + geom_bar(stat = "identity") + coord_flip()

treedata <- data %>% group_by(Driver) %>% summarise(mean.EffectSize_d = mean(EffectSize_d),
                                                    error = std.error(EffectSize_d))
m <- metagen(mean.EffectSize_d, error, studlab = Driver, data = treedata) #fit generic meta-analysis to an object

#viz (draw a standard forest plot or metaregression plot)
forest(m) #grid-based graphics so a bit of work to resize